/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compra;

import java.sql.Date;
import java.util.List;
import util.ErroAcessoRepositorioException;

/**
 *
 * @author Alberto
 */
public class CadastroCompra {
    
    private RepositorioCompra objRepositorioCompra;

    public CadastroCompra(RepositorioCompra objRepositorioCompra) {
        this.objRepositorioCompra = objRepositorioCompra;
    }
    
     /**
     * Método que ira cadastrar a Compra na base
     * 
     * @param objCompra
     * @throws ErroAcessoRepositorioException 
     */
    public void cadastrarAtualizar(Compra objCompra) throws ErroAcessoRepositorioException {
        objRepositorioCompra.cadastrarAtualizar(objCompra);
    }
    
    /**
     * Método que ira procurar uma determinada Compra na base
     * @param idCompra
     * @return Compra
     * @throws ErroAcessoRepositorioException 
     */
    public Compra procurar(int idCompra) throws ErroAcessoRepositorioException {
        return objRepositorioCompra.procurar(idCompra);
    }
    
    /**
     * Método que ira verificar a existencia de uma Compra na base
     * 
     * @param idCompra
     * @return boolean
     * @throws ErroAcessoRepositorioException 
     */
    public boolean existe(int idCompra) throws ErroAcessoRepositorioException{
        return objRepositorioCompra.existe(idCompra);
    }
    
    /**
     * Método que ira listar as Compra da base
     * 
     * @param strComplemento
     * @return List<Compra> 
     * @throws ErroAcessoRepositorioException 
     */
    public List<Compra> listar(String strComplemento) throws ErroAcessoRepositorioException {
        return objRepositorioCompra.listar(strComplemento);
    }
    
    /**
     * Método que ira remover as Compras da base
     * 
     * @param idCompra
     * @throws Exception 
     */
    public void remover(int idCompra) throws Exception {
        objRepositorioCompra.remover(idCompra);
    
    }
    
    public List<Compra> listarCompraPorFornecedorPorSolicitacaoPorFuncionarioPorData(int idFornecedor, int idSolicitacaoCompra, int idFuncionario, Date dataSolicitacaoInicial, Date dataSolicitacaoFinal)  throws ErroAcessoRepositorioException {
        return objRepositorioCompra.listarCompraPorFornecedorPorSolicitacaoPorFuncionarioPorData(idFornecedor, idSolicitacaoCompra, idFuncionario, dataSolicitacaoInicial, dataSolicitacaoFinal);
    }
    
    /**
     * Método que ira listar as Compra da base
     * 
     * @param strComplemento
     * @return List<Compra> 
     * @throws ErroAcessoRepositorioException 
     */
    public List<Compra> listarAtivas() throws ErroAcessoRepositorioException {
        return objRepositorioCompra.listarAtivas();
    }
    
    /**
     * Método que ira listar as Compra da base
     * 
     * @param strComplemento
     * @return List<Compra> 
     * @throws ErroAcessoRepositorioException 
     */
    public List<Compra> listarAtivasENaoRecebidas() throws ErroAcessoRepositorioException {
        return objRepositorioCompra.listarAtivasENaoRecebidas();
    }
    
}